#pragma once

class string_converter
{
public:
	static std::string to_string( INT8 val );
	static std::string to_string( UINT8 val );
	static std::string to_string( INT16 val );
	static std::string to_string( UINT16 val );
	static std::string to_string( INT32 val );
	static std::string to_string( UINT32 val );
	static std::string to_string( bool val );
	static std::string to_string( float val );

	static INT8 get_s8( const std::string &str, INT8 def );
	static UINT8 get_u8( const std::string &str, UINT8 def );
	static INT16 get_s16( const std::string &str, INT16 def );
	static UINT16 get_u16( const std::string &str, UINT16 def );
	static INT32 get_s32( const std::string &str, INT32 def );
	static UINT32 get_u32( const std::string &str, UINT32 def );
	static bool get_bool( const std::string &str, bool def );
	static float get_float( const std::string &str, float def );

	static std::string to_lower_case( const std::string &str );
	static std::string to_upper_case( const std::string &str );

	static std::string replace(const std::string &source, const std::string &find, const std::string &paste);
};